Methods of customizing navigation systems

ABSTRACT

Methods of providing customizable access to a navigation device, and a navigation device, are disclosed herein. For example, in at least one embodiment, the method may include providing a software development kit (SDK), including at least one application programming interface and at least one platform independent procedure call library; processing a navigation application on the navigation device, the navigation application maintaining a plurality of platform independent procedure calls based on the at least one platform independent procedure call library; and processing a customized application on the navigation device, the customized application using at least one of the plurality of platform independent procedure calls to access navigation specific information provided by the navigation application.

CO-PENDING APPLICATIONS

The following applications are being filed concurrently with the presentapplications. The entire contents of each of the following applicationsis hereby incorporated herein by reference: A NAVIGATION DEVICE ANDMETHOD FOR STORING AND UTILIZING A LAST DOCKED LOCATION (Attorney docketnumber 06P057US 16) filed on even date herewith; A METHOD AND DEVICE FORUTILIZING A SELECTABLE LOCATION MARKER FOR RELATIONAL DISPLAY OF POINTOF INTEREST ENTRIES (Attorney docket number 06P057US15) filed on evendate herewith; A METHOD AND DEVICE FOR MAP SWITCHING (Attorney docketnumber 06P057US 14) filed on even date herewith; A NAVIGATION DEVICE ANDMETHOD FOR CONVEYING INFORMATION RELATIONSHIPS (Attorney docket number06P057US20) filed on even date herewith; A NAVIGATION DEVICE AND METHODOF UPDATING INFORMATION ON A NAVIGATION DEVICE (Attorney docket number06P057US 18) filed on even date herewith; A NAVIGATION DEVICE, SERVER,AND METHOD FOR COMMUNICATING THEREBETWEEN (Attorney docket number06P057US 17) filed on even date herewith; A METHOD AND DEVICE FORPROVIDING PREFERENCES DURING ROUTE TRAVEL CALCULATION ON A NAVIGATIONDEVICE (Attorney docket number 06P057US13) filed on even date herewith;A NAVIGATION DEVICE AND METHOD OF ACTIVATING INFORMATION ON A NAVIGATIONDEVICE (Attorney docket number 06P057US12) filed on even date herewith;AUTOMATIC DISCOVERY OF WIRELESS COMMUNICATION SETTINGS (Attorney docketnumber 06P057US04) filed on even date herewith; A NAVIGATION DEVICE ANDMETHOD OF IMPLEMENTING AUDIO FEATURES IN A NAVIGATION DEVICE (Attorneydocket number 06P057US21) filed on even date herewith; and A NAVIGATIONDEVICE AND METHOD FOR SEQUENTIAL MAP DISPLAY (Attorney docket number06P057US22) filed on even date herewith.

PRIORITY STATEMENT

The present application hereby claims priority under 35 U.S.C. § 119 oneach of Great Britain Patent Application numbers 0604709.6 filed Mar. 8,2006; 0604708.8 filed Mar. 8, 2006; 0604710.4 filed Mar. 8, 2006;0604704.7 filed Mar. 8, 2006; and 0604706.2 filed Mar. 8, 2006, theentire contents of each of which is hereby incorporated herein byreference.

FIELD

The present application generally relates navigation systems. Forexample, the present application may relate to customization ofnavigation systems using a software development kit (SDK).

BACKGROUND

Conventionally, a stand-alone navigation device may be equipped with aGPS antenna such that the navigation device may provide a geographicallocation of the device to a user of the device. Such navigation devicesmay be used within transportation vehicles to provide positioninformation associated with geographical location of the vehicles. Thenavigation devices may also provide displays which provide visualinformation to the users of the devices. Some navigation devices cancommunicate audibly with the users, for example, through the use of astereo or a radio within the vehicle. Furthermore, the navigationdevices may be equipped with a stand-alone navigation application whichprovides routing information and/or navigation specific information toaid a user in locating a desired geographical location on a visualrepresentation of a map displayed on the navigation device.Conventionally, navigation devices are stand-alone devices providingprimarily only navigation information to the users, without otherinformation services such as internet access or telephone access.

It can be appreciated that a stand-alone navigation device, althoughproviding necessary geographic information, may not provide allinformation necessary to the user of the device. The user of thenavigation device may require additional information such as customizedweather conditions, road conditions, routing information for a pluralityof points of interest, route information for a delivery route or serviceroute, or other information necessary to a particular user.

Therefore, a user may wish to use a have a customized navigationapplication to add features to a navigation device.

For example, a fleet of delivery trucks for a shipping company mayrequire specific functionality not readily available on the navigationdevice, such as overall routing for a plurality of locations (e.g.,traveling salesman problem). Furthermore, the shipping company mayrequire routing information for all delivery trucks to be integratedwith current systems employed at the shipping company. However, inconventional programming approaches, a user needs to program complexsubroutines using specific algorithms to stably determine navigationspecific information. These algorithms are compiled into a newnavigation application which runs on the navigation device. It will beappreciated that the new navigation application may be cumbersome anddifficult to debug, as the additional modules have been compiled ontothe application.

It will also be appreciated that stand-alone navigation devices may onlyinclude a single navigation application with limited functionality. Assuch, conventional navigation devices may be packaged/distributed withlittle or no customization options respective to the existingstand-alone navigation application. Furthermore, customization of thestand-alone navigation application for a plurality of users beforedistribution may include expensive and time consuming softwaredevelopment for the developer of the navigation application andnavigation device.

Therefore, conventional navigation systems lack features which may bedifficult to include in the stand-alone navigation application.

SUMMARY

As described above, the inventors have recognized that it may bedesirable to have increased customization options available fornavigation systems. The above-mentioned issues with customization ofnavigation devices and stand-alone navigation applications may beaddressed through example embodiments as disclosed in the followingspecification.

According to example embodiments, methods and systems are provided toenable customization of navigation device using a software developmentkit (SDK).

According to example embodiments, methods of providing customizableaccess to a navigation device are disclosed herein. For example, in atleast one embodiment, the method may include providing a softwaredevelopment kit (SDK), including at least one application programminginterface and at least one platform independent procedure call library;processing a navigation application on the navigation device, thenavigation application maintaining a plurality of platform independentprocedure calls based on the at least one platform independent procedurecall library; and processing a customized application on the navigationdevice, the customized application using at least one of the pluralityof platform independent procedure calls to access navigation specificinformation provided by the navigation application.

According to example embodiments, a navigation device may include meansfor processing a navigation application on the navigation device, thenavigation application maintaining a plurality of platform independentprocedure calls based on at least one platform independent procedurecall library; and means for processing a customized application on thenavigation device, the customized application using at least one of theplurality of platform independent procedure calls to access navigationspecific information provided by the navigation application.

Further, according to example embodiments, a navigation device mayinclude a processor to process a navigation application on thenavigation device, the navigation application maintaining a plurality ofplatform independent procedure calls based on a at least one platformindependent procedure call library, and to process a customizedapplication on the navigation device, the customized application usingat least one of the plurality of platform independent procedure calls toaccess navigation specific information provided by the navigationapplication.

BRIEF DESCRIPTION OF THE DRAWINGS

The present application will be described in more detail below by usingexample embodiments, which will be explained with the aid of thedrawings, in which:

FIG. 1 illustrates an example view of a Global Positioning System (GPS);

FIG. 2 illustrates an example block diagram of components of anavigation device of an example embodiment of the present application;

FIG. 3 illustrates an example block diagram of a server, navigationdevice and connection therebetween of an example embodiment of thepresent application;

FIG. 4 illustrates a method of providing customizable application accessto a navigation device, according to an example embodiment;

FIG. 5 illustrates a software development kit, according to an exampleembodiment;

FIG. 6 illustrates a customized navigation device, according to anexample embodiment; and

FIG. 7 illustrates a customized navigation system, according to anexample embodiment.

DETAILED DESCRIPTION OF THE EXAMPLE EMBODIMENTS

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the presentinvention. As used herein, the singular forms “a”, “an” and “the” areintended to include the plural forms as well, unless the context clearlyindicates otherwise. It will be further understood that the terms“includes” and/or “including” , when used in this specification, specifythe presence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

In describing example embodiments illustrated in the drawings, specificterminology is employed for the sake of clarity. However, the disclosureof this patent specification is not intended to be limited to thespecific terminology so selected and it is to be understood that eachspecific element includes all technical equivalents that operate in asimilar manner.

Some portions of the detailed descriptions contained herein arepresented in terms of algorithms, operations, function, and symbolicrepresentations of operations within a computer device or navigationdevice. These algorithmic descriptions and representations will beapparent to those skilled in the art of computer processing and computerprogramming arts such that these descriptions may most effectivelyconvey there aspects to those skilled in the art.

Furthermore, as used herein, a portable navigation device may includeone more processing elements coupled with a computer readable memorywhich may be volatile or non-volatile or any combination thereof. Thenavigation device in example embodiments may be a handheld computingdevice which may be mounted or used in a personal vehicle fortransportation. In some example embodiments, the navigation device is acombination of devices integrated into single portable electronicdevice. For example, the navigation device may include a typical GPSreceiver, a palm top or personal digital assistant, a laptop, a mobilephone or cellular telephone, or any other device which may be integratedwith the GPS device. Furthermore, in example embodiments, computerdevices may utilize any number of API library platform independentprocedure calls to create customized applications which accessgeographic or navigation specific information from a navigationapplication of a navigation device, for at least the purpose ofresolving a present geographic location or other information associatedwith the geographic location of the navigation device.

Additionally, as used herein, the term “customized” refers to softwareexecutable instructions which may be tailored to use operations orfunctions included in a navigation device and/or navigation application.The term “customize” may refer to existing software executableinstructions which may have been altered or enhanced by third-partydevelopers including algorithms, operations, or functions to be includedin a customized application to access navigation specific informationfrom a navigation device. Moreover, the phrases “customized module” and“customized application” may be used synonymously herein.

As used herein the phrase “navigation information,” and/or “navigationspecific information,” refers to operations or functions related tonavigation including guidance operations, route generate operations,mapping operations, geographic positioning operations, and similaroperations which result in information pertaining to geographiclocation. Furthermore, application programming interface librariesdescribed herein need not be in singular form and may include additionallibraries or application programming interfaces, including independentlibraries separate from any particular application programminginterface. The application programming interfaces and/or independentlibraries may be included in a software development kit which may beshared by one or more third-party software developers and distributedaccordingly.

As an example, included herein for the purpose of understandingapplication programming interfaces and not to be construed as limiting,in the MICROSOFT WINDOWS computer environment, an API library may beprovided as a dynamic link library. Additionally, in UNIX, LINUX, orAPPLE OSX computing environments, an API library may be provided as ashared library.

Referencing the drawings, wherein like reference numerals designateidentical or corresponding parts throughout the several views, exampleembodiments of the present patent application are hereafter described.

FIG. 1 illustrates an example view of Global Positioning System (GPS),usable by navigation devices, including the navigation device ofembodiments of the present application. Such systems are known and areused for a variety of purposes. In general, GPS is a satellite-radiobased navigation system capable of determining continuous position,velocity, time, and in some instances direction information for anunlimited number of users.

Formerly known as NAVSTAR, GPS incorporates a plurality of satelliteswhich work with the earth in very precise orbits. Based on these preciseorbits, GPS satellites may relay their location to any number ofreceiving units.

The GPS system is implemented when a device, specially equipped toreceive GPS data, begins scanning radio frequencies for GPS satellitesignals. Upon receiving a radio signal from a GPS satellite, the devicedetermines the precise location of that satellite via one of a pluralityof different conventional methods. The device will continue scanning, inmost instances, for signals until it has acquired at least threedifferent satellite signals (noting that position is not normally, butcan be determined, with only two signals using other triangulationtechniques). Implementing geometric triangulation, the receiver utilizesthe three known positions to determine its own two-dimensional positionrelative to the satellites. This can be done in a known manner.Additionally, acquiring a fourth satellite signal will allow thereceiving device to calculate its three dimensional position by asubstantially similar geometrical calculation in a known manner. Theposition and velocity data can be updated in real time on a continuousbasis by an unlimited number of users.

As shown in FIG. 1, the GPS system is denoted generally by referencenumeral 100. A plurality of satellites 120 are in orbit about the earth124. The orbit of each satellite 120 is not necessarily synchronous withthe orbits of other satellites 120 and, in fact, is likely asynchronous.A GPS receiver 140, usable in embodiments of navigation devices of thepresent application, is shown receiving spread spectrum GPS satellitesignals 160 from the various satellites 120.

The spread spectrum signals 160, continuously transmitted from eachsatellite 120, utilize a highly accurate frequency standard accomplishedwith an extremely accurate atomic clock. Each satellite 120, as part ofits data signal transmission 160, transmits a data stream indicative ofthat particular satellite 120. It is appreciated by those skilled in therelevant art that the GPS receiver device 140 generally acquires spreadspectrum GPS satellite signals 160 from at least three satellites 120for the GPS receiver device 140 to calculate its two-dimensionalposition by triangulation. Acquisition of an additional signal,resulting in signals 160 from a total of four satellites 120, permitsthe GPS receiver device 140 to calculate its three-dimensional positionin a known manner.

FIG. 2 illustrates an example block diagram of electronic components ofa navigation device 200 of an example embodiment of the presentapplication, in block component format. It should be noted that theblock diagram of the navigation device 200 is not inclusive of allcomponents of the navigation device, but is only representative of manyexample components.

The navigation device 200 is located within a housing (not shown). Thehousing includes a processor 210 connected to an input device 220 and adisplay screen 240. The input device 220 can include a keyboard device,voice input device, and/or any other known input device utilized toinput information; and the display screen 240 can include any type ofdisplay screen such as an LCD display, for example. In at least oneembodiment of the present application, the input device 220 and displayscreen 240 are integrated into an integrated input and display device,including a touchpad or touch-screen input wherein a user need onlytouch a portion of the display screen 240 to select one of a pluralityof display choices or to activate one of a plurality of virtual buttons.

In addition, other types of output devices 250 can also include,including but not limited to, an audible output device. As output device250 can produce audible information to a user of the navigation device200, it is equally understood that input device 240 can also include amicrophone and software for receiving input voice commands as well.

In the navigation device 200, processor 210 is operatively connected toand set to receive input information from input device 220 via aconnection 225, and operatively connected to at least one of displayscreen 240 and output device 250, via output connections 245, to outputinformation thereto. Further, the processor 210 is operatively connectedto memory 230 via connection 235 and is further adapted to receive/sendinformation from/to input/output (I/O) ports 270 via connection 275,wherein the I/O port 270 is connectible to an I/O device 280 external tothe navigation device 200. The external I/O device 270 may include, butis not limited to an external listening device such as an earpiece forexample. The connection to I/O device 280 can further be a wired orwireless connection to any other external device such as a car stereounit for hands-free operation and/or for voice activated operation forexample, for connection to an ear piece or head phones, and/or forconnection to a mobile phone for example, wherein the mobile phoneconnection may be used to establish a data connection between thenavigation device 200 and the internet or any other network for example,and/or to establish a connection to a server via the internet or someother network for example. The connection 275 may be embodied as aBLUETOOTH connection, a serial connection, or any suitable connectionfor interfacing to an external device.

FIG. 2 further illustrates the processor 210 operatively connected tomemory 230 through channel 235. Memory 230 may store a plurality ofprograms, applications, and/or a navigation application. The processor,using the applications from memory 230, may process the navigationapplication and other applications. For example, the processor 210 mayprocess a customized application according to example embodiments. Theprocessor may further process the navigation application, and facilitatea platform independent communication protocol between the navigationapplication and customized application. The navigation application,being processed by processor 210, may maintain a plurality of platformindependent procedure calls. Therefore, procedure calls made by thecustomized application may be readily interpreted by the navigationapplication. In this manner, the customized application may retrievenavigation specific information from the navigation application.

As such, the navigation device 200 may facilitate customizable accessthereto, thereby allowing a user to customize the navigation device 200.

FIG. 2 further illustrates an operative connection between the processor210 and database 290. For example, the database 290 may storeinformation pertaining to settings on the navigation device, or otherinformation including additional applications or platform independentprocedure calls. The procedure calls may also be stored in memory, atleast in a form suitable for the navigation application to maintain theprocedure calls such that procedure calls made by the customizedapplication are readily interpreted.

FIG. 2 further illustrates an operative connection between the processor210 and an antenna/receiver 260 via connection 265, wherein theantenna/receiver 260 can be a GPS antenna/receiver for example. It willbe understood that the antenna and receiver designated by referencenumeral 260 are combined schematically for illustration, but that theantenna and receiver may be separately located components, and that theantenna may be a GPS patch antenna or helical antenna for example.

Further, it will be understood by one of ordinary skill in the art thatthe electronic components shown in FIG. 2 are powered by power sources(not shown) in a conventional manner. As will be understood by one ofordinary skill in the art, different configurations of the componentsshown in FIG. 2 are considered within the scope of the presentapplication. For example, in one embodiment, the components shown inFIG. 2 may be in communication with one another via wired and/orwireless connections and the like. Thus, the scope of the navigationdevice 200 of the present application includes a portable or handheldnavigation device 200.

In addition, the portable or handheld navigation device 200 of FIG. 2can be connected or “docked” in a known manner to a motorized vehiclesuch as a car or boat for example. Such a navigation device 200 is thenremovable from the docked location for portable or handheld navigationuse, for example, while walking or sitting.

FIG. 3 illustrates an example block diagram of a server 302 and anavigation device 200 of the present application, via a genericcommunications channel 318, of an example embodiment of the presentapplication. The server 302 and a navigation device 200 of the presentapplication can communicate when a connection via communications channel318 is established between the server 302 and the navigation device 200(noting that such a connection can be a data connection via mobiledevice, a direct connection via personal computer via the internet,etc.).

The server 302 includes, in addition to other components which may notbe illustrated, a processor 304 operatively connected to a memory 306and further operatively connected, via a wired or wireless connection314, to a mass data storage device 312. The processor 304 is furtheroperatively connected to transmitter 308 and receiver 310, to transmitand send information to and from navigation device 200 viacommunications channel 318. The signals sent and received may includedata, communication, and/or other propagated signals. The transmitter308 and receiver 310 may be selected or designed according to thecommunications requirement and communication technology used in thecommunication design for the navigation system 200. Further, it shouldbe noted that the functions of transmitter 308 and receiver 310 may becombined into a signal transceiver.

Server 302 is further connected to (or includes) a mass storage device312, noting that the mass storage device 312 may be coupled to theserver 302 via communication link 314. The mass storage device 312contains a store of navigation data and map information, and can againbe a separate device from the server 302 or can be incorporated into theserver 302.

The navigation device 200 is adapted to communicate with the server 302through communications channel 318, and includes processor, memory, etc.as previously described with regard to FIG. 2, as well as transmitter320 and receiver 322 to send and receive signals and/or data through thecommunications channel 318, noting that these devices can further beused to communicate with devices other than server 302. Further, thetransmitter 320 and receiver 322 are selected or designed according tocommunication requirements and communication technology used in thecommunication design for the navigation device 200 and the functions ofthe transmitter 320 and receiver 322 may be combined into a singletransceiver.

Software stored in server memory 306 provides instructions for theprocessor 304 and allows the server 302 to provide services to thenavigation device 200. One service provided by the server 302 involvesprocessing requests from the navigation device 200 and transmittingnavigation data from the mass data storage 312 to the navigation device200. According to at least one embodiment of the present application,another service provided by the server 302 includes processing thenavigation data using various algorithms for a desired application andsending the results of these calculations to the navigation device 200.

The communication channel 318 generically represents the propagatingmedium or path that connects the navigation device 200 and the server302. According to at least one embodiment of the present application,both the server 302 and navigation device 200 include a transmitter fortransmitting data through the communication channel and a receiver forreceiving data that has been transmitted through the communicationchannel.

The communication channel 318 is not limited to a particularcommunication technology. Additionally, the communication channel 318 isnot limited to a single communication technology; that is, the channel318 may include several communication links that use a variety oftechnology. For example, according to at least one embodiment, thecommunication channel 318 can be adapted to provide a path forelectrical, optical, and/or electromagnetic communications, etc. Assuch, the communication channel 318 includes, but is not limited to, oneor a combination of the following: electric circuits, electricalconductors such as wires and coaxial cables, fiber optic cables,converters, radio-frequency (rf) waves, the atmosphere, empty space,etc. Furthermore, according to at least one various embodiment, thecommunication channel 318 can include intermediate devices such asrouters, repeaters, buffers, transmitters, and receivers, for example.

In at least one embodiment of the present application, for example, thecommunication channel 318 includes telephone and computer networks.Furthermore, in at least one embodiment, the communication channel 318may be capable of accommodating wireless communication such as radiofrequency, microwave frequency, infrared communication, etc.Additionally, according to at least one embodiment, the communicationchannel 318 can accommodate satellite communication.

The communication signals transmitted through the communication channel318 include, but are not limited to, signals as may be required ordesired for given communication technology. For example, the signals maybe adapted to be used in cellular communication technology such as TimeDivision Multiple Access (TDMA), Frequency Division Multiple Access(FDMA), Code Division Multiple Access (CDMA), Global System for MobileCommunications (GSM), etc. Both digital and analogue signals can betransmitted through the communication channel 318. According to at leastone embodiment, these signals may be modulated, encrypted and/orcompressed signals as may be desirable for the communication technology.

The mass data storage 312 includes sufficient memory for the desirednavigation applications. Examples of the mass data storage 312 mayinclude magnetic data storage media such as hard drives for example,optical storage media such as CD-Roms for example, charged data storagemedia such as flash memory for example, molecular memory, etc.

According to at least one embodiment of the present application, theserver 302 includes a remote server accessible by the navigation device200 via a wireless channel. According to at least one other embodimentof the application, the server 302 may include a network server locatedon a local area network (LAN), wide area network (WAN), virtual privatenetwork (VPN), etc.

According to at least one embodiment of the present application, theserver 302 may include a personal computer such as a desktop or laptopcomputer, and the communication channel 318 may be a cable connectedbetween the personal computer and the navigation device 200.Alternatively, a personal computer may be connected between thenavigation device 200 and the server 302 to establish an internetconnection between the server 302 and the navigation device 200.Alternatively, a mobile telephone or other handheld device may establisha wireless connection to the internet, for connecting the navigationdevice 200 to the server 302 via the internet.

The navigation device 200 may be provided with information from theserver 302 via information downloads which may be periodically updatedupon a user connecting navigation device 200 to the server 302 and/ormay be more dynamic upon a more constant or frequent connection beingmade between the server 302 and navigation device 200 via a wirelessmobile connection device and data connection for example. For manydynamic calculations, the processor 304 in the server 302 may be used tohandle the bulk of the processing needs, however, processor 210 ofnavigation device 200 can also handle much processing and calculation,oftentimes independent of a connection to a server 302.

The mass storage device 312 connected to the server 302 can includevolumes more cartographic and route data than that which is able to bemaintained on the navigation device 200 itself, including maps, etc. Theserver 302 may process, for example, the majority of the devices of anavigation device 200 which travel along the route using a set ofprocessing algorithms. Further, the cartographic and route data storedin memory 312 can operate on signals (e.g. GPS signals), originallyreceived by the navigation device 200.

For example, the navigation device 200 may be used in a largernavigation system, such that a user may interact with, or utilize,addition features not normally available to a stand-alone navigationdevice. Furthermore, the navigation device may include a customizedprogram or application, being processed with a navigation applicationprovided with the navigation device. A method of providing customizableaccess to a navigation device will be described in detail below.

FIG. 4 illustrates a method of providing customizable access to anavigation device, according to an example embodiment. As illustrated inFIG. 4, the method may include providing platform independent procedurecalls in a software development kit. A software development kit is apiece of technology that may allow third-party software developers tointegrate customized applications within a navigation device 200. Forexample, a software development kit may include at least one applicationprogramming interface. The at least one application programminginterface may further include at least one library including theplatform independent procedure calls. Using the platform independentprocedure calls, the third-party software developers may program orcustomize an existing application to use the platform independentprocedure calls. The platform independent procedure calls, as used inthe customized application, allow access to a navigation applicationprocessed by a navigation device. For example, as illustrated in FIG. 4,third-party software developers may use the software development kit todevelop a customized application.

However, example embodiments are not limited to software developmentkits including a plurality of application programming interfaces and aplurality of libraries. Alternatively, a single application programminginterface and/or a single library may be applied as well. Similarly, aplurality of application programming interfaces and a plurality ofplatform independent procedure call libraries may be provided.Therefore, example embodiments may provide a software developments kitwhich allows a user to develop a customized application using at leastone application programming interface and at least one platformindependent procedure call library.

The customized application may be programmed using well known methods,and may include the platform independent procedure calls of the libraryof the application programming interface. Subsequent to development ofthe customized application, the third-party software developers maycompile the customized application using the software development kit.For example, the third-party software developers may compile thecustomized application using a known compiler such as a C++or visualbasic compiler in a computer device, or may alternatively compile thecustomized application with a cross-chain compiler or other suitablecompiler provided in the software development kit.

Subsequent to compilation, the third-party software developers maydownload and store the customized application on the navigation device200. In order to download and store the customized application, thethird-party software developers may utilize a serial interface from acomputer device to the navigation device 200. The serial interface mayinclude, for example, a RS-232 serial protocol, universal serial bus USBprotocol, or any suitable serial communication protocol.

Alternatively, the software developers, or a user of the navigationdevice 200, may download the customized application to a removablestorage medium such as a computer disk or memory card, for example. Thestorage medium, containing the customized application, may be insertedor connected to the navigation device 200 such that the navigationdevice 200 may process the customized application. Examples of storagemediums will be discussed later.

Subsequent to compiling and storing the customized application on thenavigation device 200, or on the storage medium, the navigation device200 may process the customized application. During processing, or duringthe process of processing (e.g., there may be gaps in which theapplication is not processed), the customized application may use theplatform independent procedure calls to access navigation specificinformation on the navigation device 200. For example, the platformindependent procedure calls may allow communication between an existingnavigation application and the customized application on the navigationdevice 200. To better understand a software development kit which allowscustomizable access to a navigation device 200, a software developmentkit of an example embodiment will be described with reference to FIG. 5below.

FIG. 5 illustrates a software development kit, according to an exampleembodiment. As illustrated in FIG. 5, a software development kit mayinclude at least one application programming interface, documentation,and a compiler. However, it should be noted that the softwaredevelopment kit may include additional features such as a stand-aloneapplication, additional libraries, header files, and additionaldocumentation. For example, the software development kit may include anapplication to aid third-party software developers to develop customizedapplications such as a code editor, program editor, or emulator tosimulate the navigation application and/or navigation device 200.

With reference to FIG. 5, an application programming interface mayinclude a plurality of libraries 511, 522, 51 n, 51 m. For example,libraries regarding navigation specific information may include clearroute libraries, location sensitive libraries, itinerary relatedlibraries, points of interest (POI) libraries, custom menus libraries,and navigation coordinate libraries. It should be noted however, thatthe application programming interfaces may include more libraries (oralternatively, less libraries) depending on the functionality of thenavigation device. For example, the application programming interfacemay further include libraries regarding hands-free operation of a mobiledevice, audio access information for a vehicle's stereo or radio, or anyother suitable libraries pertaining to a specific navigation device 200.Similarly, the application programming interface may include onelibrary, or at least one library, organized to include a plurality ofprocedure calls related to the different libraries described above.Therefore, according to example embodiments, a software development kitmay include at least one library.

With regards to the libraries of the application programming interface,each library may include a plurality of platform independent procedurecalls such that software developers may develop customized applications.Each platform independent procedure call may include a procedure nameand a list of variables associated with the procedure call. For example,Table 1 below sets forth an example listing of a possible “ItineraryRelated” library's procedure calls. TABLE 1 1 int SaveItinerary(Terror*err, char* a FileName) 2 int LoadItinerary(Terror *err, char* aFileName) 3 int ClearItinerary(Terror *err) 4 int NavigateToNextStopover(Terror *err) 5 int AbortIteneraryLeg(Terror *err) 6 intGetCurrentStopover(Terror *err, IIteneraryIndex *index)

As shown above in Table 1, an API library may include a plurality ofplatform independent procedure calls. The platform independent procedurecall located under Table 1, Index 1, named “SaveItinerary,” may enablestoring a current itinerary to a file such that it may be read later bya navigation application. Shown above in standard C/C++format, theSaveItinerary procedure call includes two input arguments and an integerreturn field. For example, the integer returned may represent asuccessful store of the itinerary written to the itinerary file.Therefore, itinerary related information may be written to a file by thecustomized application, read by the navigation application, andprocessed by the navigation application without the need for complexalgorithms for altering or entering a new itinerary to be included inthe customized application. As such, the complexity of a compiledcustomized application may be reduced if compared to a conventionalapproach.

It should be noted that specific examples of arguments and procedurecalls have been given above in Table 1 for purposes of illustrationonly, and the embodiments of the present application should not belimited as such. For example, more or less arguments or differentfunctionality may likewise be included in the aforementioned procedurecalls.

Hereinafter, a more detailed explanation of example navigation specificlibraries will be described.

For example the plurality of libraries 511, 522, 51 n, 5 m may includeclear route library 511, location sensitive library 512, itineraryrelated library 513, points of interest library 514, custom menuslibrary 515, navigation coordinates library 516, custom buttons library51 n, and user interface tools library 51 m. However, as noted above,the application programming interface may include one or more libraries.For example, at least one library may include a plurality of platformindependent procedure calls related to the libraries listed above.

Using the plurality of libraries, a customized application may access atleast a current geographical location of the navigation device, anestimated time of arrival to a point of interest, a currently selectedpoint of interest, and a distance between the current geographicallocation of the navigation device 200 and the currently selected pointof interest. Additional information may be accessed using the procedurecalls and libraries, and therefore, example embodiments should not belimited to only those examples listed above.

In at least one example embodiment, the clear route library 511 mayinclude platform independent procedure calls to clear a route activelytraversed by the navigation device 200. For example, a present route maybe loaded onto the user interface of the navigation device 200. If thecustomized application makes a platform independent procedure call fromthe clear route library 511, the present route may be cleared and thenavigation device 200 may return to a default route state. Furthermore,if active operations in the navigation operation application are busyprocessing a present route, the clear route procedure call may return anerror such that the customized application may make the appropriatecorrection.

In at least one example embodiment, itinerary related library 513 mayinclude platform independent calls such as those listed above in Table1, for example.

In at least one example embodiment, custom menus library 515 may allow acustomized application to define a customized menu through thenavigation application. For example, using custom menus library 515, acustomized application may make procedure calls to produce customizedmenus within the user interface of the navigation device 200. Thecustomized menus facilitated by the procedure calls may mimic the lookand feel of the navigation application interface, such that a seamlessintegration may occur. For example, the customized menus may bereproduced in the user interface by the customized application, suchthat the customized application appears as the navigation application.It will be appreciated that providing access to the appearance of thenavigation application interface may aid in retaining the familiarinterface to facilitate easier interaction with a customizedapplication.

In at least one example embodiment, location sensitive library 512 mayinclude platform independent procedure calls which allow retrieval oflocation sensitive information from the navigation application processedby the navigation device 200. For example, the customized applicationmay use platform independent procedure calls from location sensitivelibrary 512 to extract present coordinates or desired coordinates fromthe navigation application.

In at least one example embodiment, points of interest library 514 mayinclude platform independent procedure calls to extract or communicatepoints of interest to/from a customized application. For example, pointsof interest may include geographical locations of interest to a user ofthe navigation device 200. These points of interest may be in list form,or may be indexed in a database on the navigation device 200, such thatthe customized application may use procedure calls from points ofinterest libraries 514 to access points of interest information from thenavigation application. Furthermore, each point of interest stored onthe navigation device 200 may include a plurality of informationassociated therewith. For example, the information may include atelephone number associated with a location, a restaurant or hotellocation close to the point of interest, or similar information whichmay be relevant to the point of interest. Using points of interestlibrary 514, the customized application may be able to access thisrelevant point of interest information using platform independentprocedure calls. Similarly, using points of interest library 514, acustomized application may send or update new points of interest to thenavigation application, for storage on the navigation device 200.

In at least one example embodiment, navigation coordinates library 516includes platform independent procedure calls such that a customizedapplication may direct the navigation application to a particularnavigation coordinate. For example, navigation coordinates may includelatitude and longitude, or any relevant information such that thenavigation application may provide routing information to the customizedapplication. For example, a procedure call from navigation coordinateslibrary 516 to an off-road or off-route location may result in thenavigation application providing a theoretical line drawn from thepresent geographic location of the navigation device 200 to thenavigation coordinate submitted to the navigation application. Usingthis theoretical line, the customized application may process anyrequired attributes of the theoretical line and continue communicationto the navigation application through navigation coordinate procedurecalls. It will be appreciated that using similar procedure calls in acustomized application may result in enhancement of conventionalnavigation device utility. More clearly, using a procedure call todirect the navigation device to a specific location, and retrieving atheoretical line representing a route to the specific location, acustomized application may have added the ability to traverse off-roador previously un-routed territory using the navigation device.

It should be noted that additional libraries may be included in softwaredevelopment kits without the departing from the scope of exampleembodiments.

Furthermore, the platform independent procedure calls 1-6 depicted inTable 1 are shown as examples for navigation specific communicationsbetween a customized application and navigation application only, andare not to be construed as limiting. Hereinafter, a platform independentcommunication protocol applied to a customized navigation device will beexplained with reference to FIG. 6.

FIG. 6 illustrates a customized navigation device 200, according to anexample embodiment. According to example embodiments, the softwaredevelopment kit allows developers to create customized applications fora navigation device 200 and to integrate the customized applicationswith the navigation application.

For example, a navigation device 200 may include a user interface 600.For example, the user interface 600 may be embodied as a graphical userinterface or a text-based user interface such that user may interactwith the navigation device 200. For example, the user interface 600 mayinclude a plurality of touch sensitive buttons displayed on a touchsensitive screen such that a user may simply depress a graphicalrepresentation of a button and thereby enable operations of a customapplication 610 and/or a navigation application 620. Alternatively, theuser interface may display information as text on screen such that auser may select or enter an appropriate option with an input device,such as a stylus or a finger for example.

As further illustrated in FIG. 6, the navigation device 200 may processa customized application 610 and a navigation application 620 in theapplication layer 660. It should be noted that a navigation device 200according to example embodiments is not limited to layered abstraction.For example, any appropriate programming hierarchy may be used, oralternatively, an approach without an application layer may beappropriate as well.

The customized application 610 may be a third-party customizedapplication stored on the navigation device 200. For example, thecustomized application 610 may, using platform independent procedurecalls, communicate to navigation application 620 via the platformindependent communication layer 670. As shown in FIG. 6, the platformindependent communication layer 670 may include file communication orsocket communication between applications.

Hereinafter, a more detailed explanation of implementation of platformindependent communication with file communication will be given.

With regards to file communication, file communication betweenapplications may include writing and reading a plurality of files storedon the navigation device 200. The file communication between twoapplications may function through a client/server model, where thenavigation application acts as a server receiving commands from thecustomized application, sending back results if necessary. The commandsmay be written in message files and sent to the navigation application,which may send back responses written in other files or the same files.

If an application is to communicate, or is programmed to communicate,with another application being processed by the navigation device 200,the application to communicate may simply write arguments to files inthe platform independent communication layer. For example, withreference to Table 1, the “SaveItinerary” platform independent procedurecall may write arguments to a file, for example, file 675. The“SaveItinerary” file (e.g., 675) may be accessed by customizedapplication 610.

Additionally, a customized application may communicate with thenavigation application by setting up a communication object. Thecommunication object may allow procedure calls to be processed forcommunications purposes. The procedure calls may be made synchronouslyas well as asynchronously, due to the nature of file writing. Forexample, because a file may be written and stored to memory, the filemay be read later, depending upon implementation, allowing forasynchronous procedure calls. Similarly, a file may be read atsubstantially the same time as writing, thereby facilitating synchronousprocedure calls as well.

Subsequent to a procedure call writing to file 675, navigationapplication 620 may access file 675 to retrieve the arguments issued bycustomized application 610. The navigation application may use orprocess the application arguments retrieved from file 675 and processthem as programmed in the navigation application. For example, if usinga “SaveItinerary” function call by a customized application, thenavigation application may use the arguments stored in the written file(e.g., 675) to extrapolate an itinerary desired by the customizedapplication. The navigation application, using the retrieved itinerary,may display itinerary results using the user interface 600. Therefore,the arguments in the “SaveItinerary” file may be read and processed bythe navigation application, without complex algorithms for itinerarymodification included in the customized application.

In this manner, a customized application 610 may retrieve and writecommunication arguments to navigation application 620 such thatcustomized application 610 accesses the features of navigationapplication 620.

According to example embodiments, a navigation device 200 may include aprocessor to process a navigation application on the navigation device200, the navigation application maintaining a plurality of platformindependent procedure calls based on a at least one platform independentprocedure call library, and to process a customized application on thenavigation device 200, the customized application using at least one ofthe plurality of platform independent procedure calls to accessnavigation specific information provided by the navigation application.

Hereinafter, a more detailed explanation of implementation of platformindependent communication with socket communications will be given.

With regards to socket communications, socket communications may enablea customized application to communicate with a navigation application ona navigation device 200. For example, in contrast to the filecommunication protocol described above, a customized application mayissue arguments and procedure calls using a socket. A socket may be acommunications end-point for establishing two-way communication betweenentities. According to example embodiments, platform independentcommunication including socket communications is substantially similarto file communications except in issuing and receiving arguments. Forexample, a client/server model may be used as described above, andsimilar procedure calls may enable communications. In contrast however,sockets may be read/written from/to for communication instead of files.

Hereinafter, a customized navigation system employing a softwaredevelopment kit will be described with reference to FIG. 7.

FIG. 7 illustrates a customized navigation system, according to anexample embodiment. As illustrated in FIG. 7 a customized applicationmay include a navigation device 710 (noting that navigation device 200equally applies, wherein navigation device 200 and 710 may be one in thesame, with only a new number being denoted to correlate with new FIG.7), a software development kit, and a computer device/terminal 740. Thecustomized navigation system may further include a mobile unit 720enabling communications to the internet for example. Furthermore, thecomputer device/terminal 740 may be in communication with the internet.Therefore, navigation device 710 may be connected to the internetthrough computer device/terminal 740 and/or mobile unit 720. Theconnection with mobile unit 720 may enable navigation device 710 toaccess information from the internet using the internet connection ofmobile unit 720. Furthermore, navigation device 710 may transmitinformation to the internet using the internet connection of mobile unit720.

Although the computer device 740 and software development kit 730 havebeen illustrated in FIG. 7 as being separate entities, it would beunderstood that the software development kit may be used independentlyon a separate terminal, or in combination with terminal 740 to programand customize an application.

Using the software development kit 730, computer device 740 may downloada customized application to navigation device 710. The navigation device710 may process the customized application such that it may transmitinformation to a navigation application being processed on thenavigation device 710. For example, the customized application maytransmit information including an IP address and relevant information tothe navigation application such that the navigation device 710 maytransmit the application information from the customized application tocomputer device/terminal 740. The transmission may be facilitated by theinternet using the mobile unit 720, or alternatively, through a directconnection between the navigation device 710 and computerdevice/terminal 740.

Furthermore, utilizing the connection between the navigation device 710and computer device/terminal 740, debugging may be enhanced. Forexample, a user may debug the customized application on the computerdevice/terminal connected to the navigation device 710, while thecustomized application is being processed by the navigation device 710.Similarly, the customized application may be adapted to transmitperformance related logs to the computer device/terminal 740. Therefore,the performance of an implementation of a customized application may berecorded at the computer device/terminal 740.

Additionally, the customized application may access navigation specificinformation from the navigation application, and transmit the navigationspecific information to computer device/terminal 740.

Therefore, in the customized navigation system 700 of FIG. 7, acustomized application may be implemented such that navigation specificinformation is transmitted to a terminal which is independent fromnavigation device 710. Therefore, as will be appreciated, a softwaredevelopment kit may be used in connection with navigation devices suchthat navigation specific information may be transmitted regardless oflocation. Therefore, numerous applications of the software developmentkit may be developed to suit a user's needs, thereby facilitatingcustomizable access to a navigation device.

As an example, given for the purpose of illustration only, a deliveryservice such as a shipping service may use a software development kit730 to program a customized shipping application which tracks theprogress of shipping orders. Using navigation device 710 processing thecustomized shipping application, the shipping service may readilyretrieve and transmit navigation specific information relating topackages being shipped such that a terminal 740 (located in a shippingcenter for example) may retrieve shipping information from thenavigation device 710. As such, a need for a custom-made navigationdevice 710, tailored to a particular application or service, may beobviated as a customized application may be developed using softwaredevelopment kit 730 according to example embodiments. Therefore, usingsoftware development kits according to example embodiments, typicalnavigation devices may be more easily customized for any particularapplication or use.

Furthermore, using software developments kits according to exampleembodiments, a third-party software developer may more easily accessnavigation specific information from a navigation device 710. Forexample, because example embodiments set forth platform independentprocedure calls for communication with an existing navigationapplication, rather than stand-alone custom applications with complexalgorithms, necessary knowledge of complex calculations for determiningnavigation specific information is reduced as an existing navigationapplication provides the information through platform independentprocedure calls. Additionally, debugging of a customized application maybe reduced as complex calculations for navigation specific informationare processed by the navigation application rather than the customizedapplication.

Thus, according to example embodiments, methods of providingcustomizable access to a navigation device 200/710 are disclosed herein.For example, in at least one embodiment, the method may includeproviding a software development kit (SDK), including at least oneapplication programming interface and at least one platform independentprocedure call library; processing a navigation application on thenavigation device, the navigation application maintaining a plurality ofplatform independent procedure calls based on the at least one platformindependent procedure call library; and processing a customizedapplication on the navigation device 200/710, the customized applicationusing at least one of the plurality of platform independent procedurecalls to access navigation specific information provided by thenavigation application.

Furthermore, the methods of at least one embodiment expressed above maybe implemented as a computer data signal embodied in a carrier wave orpropagated signal that represents a sequence of instructions which, whenexecuted by a processor (such as processor 304 of server 302, and/orprocessor 210 of navigation device 200/710 for example) causes theprocessor 210 to perform a respective method. In at least one otherembodiment, at least one method provided above may be implemented aboveas a set of instructions contained on a computer readable or computeraccessible medium, such as one of the memory devices previouslydescribed, for example, to perform the respective method when executedby a processor 210 or other computer device. In varying embodiments, themedium may be a magnetic medium, electronic medium, optical medium, etc.

Even further, any of the aforementioned methods may be embodied in theform of a program. The program may be stored on a computer readablemedia and is adapted to perform any one of the aforementioned methodswhen run on a computer device (a device including a processor). Thus,the storage medium or computer readable medium is adapted to storeinformation and is adapted to interact with a data processing facilityor computer device to perform the method of any of the above mentionedembodiments.

The storage medium may be a built-in medium installed inside a computerdevice main body or a removable medium arranged so that it can beseparated from the computer device main body. Examples of the built-inmedium include, but are not limited to, rewriteable non-volatilememories, such as ROMs and flash memories, and hard disks. Examples ofthe removable medium include, but are not limited to, optical storagemedia such as CD-ROMS and DVDs; magneto-optical storage media, such asMOs; magnetism storage media, including but not limited to floppy disks(trademark), cassette tapes, and removable hard disks; media with abuilt-in rewriteable non-volatile memory, including but not limited tomemory cards; and media with a built-in ROM, including but not limitedto ROM cassettes; etc. Furthermore, various information regarding storedimages, for example, property information, may be stored in any otherform, or it may be provided in other ways.

As one of ordinary skill in the art will understand upon reading thedisclosure, the electronic components of the navigation device 200and/or the components of the server 302 can be embodied as computerhardware circuitry or as a computer readable program, or as acombination of both.

The system and method of embodiments of the present application includesoftware operative on the processor to perform at least one of themethods according to the teachings of the present application. One ofordinary skill in the art will understand, upon reading andcomprehending this disclosure, the manner in which a software programcan be launched from a computer readable medium in a computer basedsystem to execute the functions found in the software program. One ofordinary skill in the art will further understand the variousprogramming languages which may be employed to create a software programdesigned to implement and perform at least one of the methods of thepresent application.

The programs can be structured in an object-orientation using anobject-oriented language including but not limited to JAVA, Smalltalk,C++, etc., and the programs can be structured in aprocedural-orientation using a procedural language including but notlimited to COBAL, C, etc. The software components can communicate in anynumber of ways that are well known to those of ordinary skill in theart, including but not limited to by application of program interfaces(API), interprocess communication techniques, including but not limitedto report procedure call (RPC), common object request brokerarchitecture (CORBA), Component Object Model (COM), DistributedComponent Object Model (DCOM), Distributed System Object Model (DSOM),and Remote Method Invocation (RMI). However, as will be appreciated byone of ordinary skill in the art upon reading the present applicationdisclosure, the teachings of the present application are not limited toa particular programming language or environment.

The above systems, devices, and methods have been described by way ofexample and not by way of limitation with respect to improving accuracy,processor speed, and ease of user interaction, etc. with a navigationdevice 200.

Further, elements and/or features of different example embodiments maybe combined with each other and/or substituted for each other within thescope of this disclosure and appended claims.

Still further, any one of the above-described and other example featuresof the present invention may be embodied in the form of an apparatus,method, system, computer program and computer program product. Forexample, of the aforementioned methods may be embodied in the form of asystem or device, including, but not limited to, any of the structurefor performing the methodology illustrated in the drawings.

Example embodiments being thus described, it will be obvious that thesame may be varied in many ways. Such variations are not to be regardedas a departure from the spirit and scope of the present invention, andall such modifications as would be obvious to one skilled in the art areintended to be included within the scope of the following claims.

1. A method of providing customizable access to a navigation device,comprising: providing a software development kit (SDK), including atleast one application programming interface with at least one platformindependent procedure call library; processing a navigation applicationon the navigation device, the navigation application maintaining aplurality of platform independent procedure calls based on the at leastone platform independent procedure call library; and processing acustomized application on the navigation device, the customizedapplication using at least one of the plurality of platform independentprocedure calls to access navigation specific information provided bythe navigation application.
 2. The method of claim 1, wherein theprocessing of the navigation application includes processing at leastone customized user interface option provided by the plurality ofapplication programming interfaces.
 3. The method of claim 2, whereinthe at least one customized user interface option includes atouch-sensitive button to launch features of the customized application.4. The method of claim 1, wherein the processing of the customizedapplication further includes: communicating with the navigationapplication by writing and reading to files on the navigation deviceusing at least one of the plurality of platform independent procedurecalls.
 5. The method of claim 1, wherein the processing of thecustomized application further includes: accessing non-navigationspecific information provided by the navigation application using atleast one of the plurality of platform independent procedure calls. 6.The method of claim 5, wherein the non-navigation specific informationincludes information obtained by the navigation application from theinternet.
 7. The method of claim 1, wherein the processing of thecustomized application further includes: communicating non-navigationspecific information to the navigation application using at least one ofthe plurality of platform independent procedure calls.
 8. The method ofclaim 7, wherein the non-navigation specific information includesinformation to be transmitted to the internet by the navigationapplication.
 9. The method of claim 1, further comprising: creating thecustomized application with the software development kit on a computerdevice; transferring the customized application to the navigation devicefrom the computer device; and debugging the customized application on acomputer terminal connected to the navigation device, while thecustomized application is being processed by the navigation device. 10.The method of claim 1, wherein the navigation specific informationincludes at least one of a current geographical location of thenavigation device, an estimated time of arrival to a point of interest,a currently selected point of interest, and a distance between thecurrent geographical location of the navigation device and the currentlyselected point of interest.
 11. The method of claim 10, wherein thecustomized application accesses the current geographical location usingat least one of the plurality of platform independent procedure calls.12. The method of claim 10, wherein the customized application accessesthe estimated time of arrival using at least one of the plurality ofplatform independent procedure calls.
 13. The method of claim 10,wherein the customized application accesses the currently selected pointof interest using at least one of the plurality of platform independentprocedure calls.
 14. The method of claim 10, wherein the customizedapplication communicates new points of interest to the navigationapplication using at least one of the plurality of platform independentprocedure calls.
 15. The method of claim 1, wherein the at least oneplatform independent procedure call library includes an itineraryrelated library.
 16. The method of claim 1, wherein the at least oneplatform independent procedure call library includes a locationsensitive library.
 17. The method of claim 1, wherein the at least oneplatform independent procedure call library includes a points ofinterest library.
 18. The method of claim 1, wherein the at least oneplatform independent procedure call library includes a custom menuslibrary.
 19. The method of claim 1, wherein the at least one platformindependent procedure call library includes a navigation coordinateslibrary.
 20. The method of claim 1, wherein the at least one platformindependent procedure call library includes a clear route library.
 21. Acomputer readable medium including program segments for, when executedon a processor of a navigation device, causing the navigation device toimplement the method of claim
 1. 22. A navigation device, comprising:means for processing a navigation application on the navigation device,the navigation application maintaining a plurality of platformindependent procedure calls based on a at least one platform independentprocedure call library; and means for processing a customizedapplication on the navigation device, the customized application usingat least one of the plurality of platform independent procedure calls toaccess navigation specific information provided by the navigationapplication.
 23. The navigation device of claim 22, further comprising:means for storing files on the navigation device, for facilitatingaccess to navigation specific information provided by the navigationapplication.
 24. The navigation device of claim 23, wherein thenavigation specific information is written to the files by thenavigation application.
 25. The navigation device of claim 23, whereinrequests for navigation specific information are written to the files bythe customized application.
 26. The navigation device of claim 23,wherein the means for processing the customized application furtherincludes: means for accessing non-navigation specific informationprovided by the navigation application using at least one of theplurality of platform independent procedure calls.
 27. The navigationdevice of claim 26, wherein the means for accessing non-navigationspecific information is a file communication protocol.
 28. Thenavigation device of claim 22, wherein: the customized application iscreated with a software development kit including the at least oneplatform independent procedure call library on a computer device; thecustomized application is transferred to the navigation device from thecomputer device; and the customized application is debugged on acomputer terminal connected to the navigation device.
 29. The navigationdevice of claim 22, wherein the navigation specific information includesat least one of a current geographical location of the navigationdevice, an estimated time of arrival to a point of interest, a currentlyselected point of interest, and a distance between the currentgeographical location of the navigation device and the currentlyselected point of interest.
 30. The navigation device of claim 29,wherein the customized application communicates new points of interestto the navigation application using at least one of the plurality ofplatform independent procedure calls.
 31. The navigation device of claim22, wherein the at least one platform independent procedure call libraryincludes an itinerary related library.
 32. The navigation device ofclaim 22, wherein the at least one platform independent procedure calllibrary includes a location sensitive library.
 33. The navigation deviceof claim 22, wherein the at least one platform independent procedurecall library include a points of interest library.
 34. The navigationdevice of claim 22, wherein the at least one platform independentprocedure call library includes a custom menus library.
 35. Thenavigation device of claim 22, wherein the at least one platformindependent procedure call library includes a navigation coordinateslibrary.
 36. The navigation device of claim 22, wherein the at least oneplatform independent procedure call library includes a clear routelibrary.
 37. A navigation device, comprising: a processor to process anavigation application on the navigation device, the navigationapplication maintaining a plurality of platform independent procedurecalls based on a at least one platform independent procedure calllibrary, and to process a customized application on the navigationdevice, the customized application using at least one of the pluralityof platform independent procedure calls to access navigation specificinformation provided by the navigation application.
 38. The navigationdevice of claim 37, further comprising: a memory, to store files on thenavigation device, facilitating access to navigation specificinformation provided by the navigation application.
 39. The navigationdevice of claim 38, wherein the navigation specific information iswritten to the files by the navigation application.
 40. The navigationdevice of claim 38, wherein requests for navigation specific informationare written to the files by the customized application.
 41. Thenavigation device of claim 38, wherein the processor to process thecustomized application is further used to access non-navigation specificinformation provided by the navigation application using at least one ofthe plurality of platform independent procedure calls.
 42. Thenavigation device of claim 41, wherein the processor uses a filecommunication protocol to access non-navigation specific information.43. The navigation device of claim 37, wherein: the customizedapplication is created with a software development kit including the atleast one platform independent procedure call library on a computerdevice; the customized application is transferred to the navigationdevice from the computer device; and the customized application isdebugged on a computer terminal connected to the navigation device. 44.The navigation device of claim 37, wherein the navigation specificinformation includes at least one of a current geographical location ofthe navigation device, an estimated time of arrival to a point ofinterest, a currently selected point of interest, and a distance betweenthe current geographical location of the navigation device and thecurrently selected point of interest.
 45. The navigation device of claim44, wherein the customized application communicates new points ofinterest to the navigation application using at least one of theplurality of platform independent procedure calls.
 46. The navigationdevice of claim 37, wherein the at least one platform independentprocedure call library includes an itinerary related library.
 47. Thenavigation device of claim 37, wherein the at least one platformindependent procedure call library includes a location sensitivelibrary.
 48. The navigation device of claim 37, wherein the at least oneplatform independent procedure call library include a points of interestlibrary.
 49. The navigation device of claim 37, wherein the at least oneplatform independent procedure call library includes a custom menuslibrary.
 50. The navigation device of claim 37, wherein the at least oneplatform independent procedure call library includes a navigationcoordinates library.
 51. The navigation device of claim 37, wherein theat least one platform independent procedure call library includes aclear route library.